export default {
  // sku排列算法
  cartesianProductOf () {
    return Array.prototype.reduce.call(arguments, function (a, b) {
      var ret = [];
      a.forEach(function (a) {
        b.forEach(function (b) {
          ret.push(a.concat([b]));
        });
      });
      return ret;
    }, [[]]);
  },
  swapArray (arr, index1, index2) {
    let result = arr.splice(index2, 1, arr[index1])[0];
    arr[index1] =result
  },
  // 上移 将当前数组index索引与后面一个元素互换位置，向数组后面移动一位
  moveUp (arr, index) {
    if(index === 0){
      let result = arr.shift()
      arr.push(result)
      return
    }
    this.swapArray(arr, index, index - 1);
  },
  // 下移 将当前数组index索引与前面一个元素互换位置，向数组前面移动一位
  moveDown (arr, index) {
    if(index === arr.length -1){
      let result = arr.pop()
      arr.unshift(result)
      return
    }
    this.swapArray(arr, index, index + 1);
  },
}